package com.yiren.dbaa.module.exam.contract;

import com.yiren.dbaa.currency.api.CommonCallBack;
import com.yiren.dbaa.net.bean.StudentBean;

import java.util.List;

/**
 * Describe 考试页面学员契约类
 *
 * @author WRX
 * @date 2022/7/15
 */
public interface ExamStudentContract {

    interface Model {

        /**
         * 给获取的学员列表排序，当前学员排在第一位
         *
         * @param studentBeans 学员列表
         * @param student      当前学员
         */
        void sortStudentList(List<StudentBean> studentBeans, StudentBean student, CommonCallBack callBack);
    }

    interface View {

        /**
         * 显示二维码
         *
         * @param qrCodeUrl 二维码地址
         */
        void setStudentQrCode(String qrCodeUrl);

        /**
         * 显示学员列表
         *
         * @param students
         */
        void setStudentList(List<StudentBean> students);

        /**
         * 学员扫码成功
         *
         * @param student
         */
        void sweepCodeSuccess(StudentBean student);

        /**
         * 显示风控弹出框
         *
         * @param type
         * @param reason
         * @param url
         */
        void showRiskControlDialog(int type, String reason, String url);

        /**
         * 禁用免费模式  购买课时弹出框
         */
        void showGmks(String title, String message, String btName);

        /**
         * 显示学时不足的弹框
         *
         * @param title
         * @param message
         * @param btName1
         * @param btName2
         */
        void showTimeLess(StudentBean student, String title, String message, String btName1, String btName2);

        /**
         * 选择学员成功
         *
         * @param student
         */
        void selectStuSuccess(StudentBean student);

    }

    interface Presenter {

        /**
         * 获取学员练车二维码
         *
         * @param model
         * @param student 当前的学员
         * @param v
         */
        void getStuQrCode(String model, StudentBean student, View v);

        /**
         * 获取设备风控结果
         */
        void getDeviceRiskResult();

        /**
         * 学员练车过滤
         *
         * @param student
         * @param v
         */
        void filterStuExam(StudentBean student, View v);

        /**
         * 移除扫码的回调
         */
        void removeCallBack();
    }
}
